home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Cream of the Crop 1
/
Cream of the Crop 1.iso
/
PROGRAM
/
CUJ9102.ARJ
/
9N02064A
< prev
next >
Wrap
Text File
|
1992-07-06
|
3KB
|
108 lines
/*
Program relies on definitions of _MSC_VER or __TURBOC__
to account for compiler differences between Turbo C and
Microsoft C. These values are predefined.
*/
#if defined( _MSC_VER )
#include <malloc.h>
#include <direct.h>
/* Turbo */ /* Microsoft */
/* translate structure name and members */
#define ffblk find_t
#define ff_reserved reserved
#define ff_attrib attrib
#define ff_ftime wr_time
#define ff_fdate wr_date
#define ff_fsize size
#define ff_name name
/* translate attribute mask defines */
#define FA_RDONLY _A_RDONLY
#define FA_HIDDEN _A_HIDDEN
#define FA_SYSTEM _A_SYSTEM
#define FA_LABEL _A_VOLID
#define FA_DIREC _A_SUBDIR
#define FA_ARCH _A_ARCH
/*
use macros to substitute functions and
swap argument order
*/
#define findfirst( a , b , c ) _dos_findfirst((a),(c),(b))
#define findnext( a ) _dos_findnext((a))
/* end of _MSC_VER */
#elif defined( __TURBOC__ )
#include <dir.h>
#include <alloc.h>
#endif /* __TURBOC__ */
#include <dos.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
/* defines */
#define VERSION "NO_DUP Ver 1.0, Jerzy Tomasik (c) 1990"
#define ALL_FILES 0xFFFF /* flag for _dos_find??? */
#define MAX_LINE 80
#define MAX_PATH 80
#define MAX_FLEN 13
#define MAX_FILES 15000
#define SEPARATOR "************\n"
/* data definitions and declarations */
typedef enum { False, True } Flag;
/*
DirEntry structure holds data for all files
*/
typedef struct DirEntry
{
char *path;
char name[13];
char attrib;
unsigned time;
unsigned date;
long size;
Flag dir_processed;
} DirEntry;
/*
DirList structure holds the listing of all
subdirectories on a disk
*/
typedef struct DirList
{
char pathname[MAX_PATH];
Flag dir_processed;
struct DirList *prev;
struct DirList *next;
} DirList;
typedef struct
{
Flag dir;
Flag file;
unsigned int file_count;
unsigned long total_file_size;
} GlobalOpt;
typedef char *PtrList;
/* function prototypes */
DirEntry *get_direntry ( char * );
DirList *make_path ( char *, char *, DirList * );
DirList *get_path ( DirList * );
int name_comp ( const void *, const void * );
char *datestr ( unsigned d, char *buf );
char *timestr ( unsigned t, char *buf );
void fprint_direntry ( FILE *, DirEntry * );